1. Technical Field
The present invention relates generally to preserving data integrity in response to server failure events, and in particular, to a system and method for ensuring data consistency following a master transaction server failover event. More particularly, the present invention relates to a system and method for providing data consistency among multiple stored instances of data maintained in the middleware layer of an n-tier data handling and storage architecture.
2. Description of the Related Art
Client-server is a network architecture that separates requester or master side (i.e. client side) functionality from a service or slave side (i.e. server side functionality). For many e-business and internet business applications, conventional two-tier client server architectures are increasingly being replaced by three-or more tier architectures in which transaction server middleware resides between client nodes and large scale backend data storage facilities. Exemplary of such multi-tier client-server system architectures requiring access to large scale backend data storage and highly reliable uninterrupted operability are so-called high availability (HA) systems.
In one aspect, HA is a system design protocol and associated implementation that ensures a desired level of operational continuity during a certain measurement period. In another aspect, the middleware architecture utilized in HA systems provides improved availability of services from the server side and more efficient access to centrally stored data. Namely, the scale of on-line business applications often requires hundreds or thousands of middleware transaction servers. In such a configuration, large-scale backend data storage presents a substantial throughput bottleneck. Moving most active data into middleware transaction server tiers is an effective way to reduce demand on the backend database and increases responsiveness and performance.
In one such distributed request handling system, an in-memory (i.e., within local memory of transaction server) database utilizes a transactional data grid of redundant or replica server and data instances for optimal scalability and performance. In this manner, transaction data retrieved and generated during processing of client requests is maintained in the distributed middle layers unless and until it must be copied back to the backing store in the backend storage.
An exemplary distributed HA system architecture is illustrated in FIG. 1. Specifically, FIG. 1 illustrates an HA system 100 generally comprising multiple requesters or client nodes 102a-102n and a server cluster 105 are connected to a network 110. Requesters such as client nodes 102a-102n send service requests to server cluster 105 via the network 110. In accordance with well-known client-server architecture principles, requests from clients 102a-102n are handled by servers within server cluster 105 in a manner providing hardware and software redundancy. For example, in the depicted embodiment, server cluster 105 comprises a master transaction server 104 and servers 106 and 108 configured as replicas of master server 104. In such a configuration, data updates, such as data modify and write operations are typically processed by master transaction server 104 and copied to replica servers 106 and 108 to maintain data integrity.
Redundancy protection within HA system 100 is achieved by detecting node or daemon failures and reconfiguring the system appropriately, so that the workload can be assumed by replica servers 106 and 108 responsive to a hard or soft failure within master server 104. All of the servers within server cluster 105 have access to persistent data storage maintained by a HA backend storage device 125. A transaction log 112 is provided within HA backend storage device 125 that enables failover events to be performed without losing data as a result of a failure in a master node such as master transaction server 104.
The large-scale storage media used to store data within HA backend storage 125 is typically many orders slower than local memory used to store transactional data within the individual server nodes within server cluster 105. Therefore, transaction data is often maintained on nodes within server cluster 105 until final results data must be copied to persistent storage within HA backend storage 125. If transaction log data is stored such as depicted in FIG. 1 within backend storage 125, the purpose of transaction in-memory storage is defeated. If, on the other hand, comprehensive transaction logs are not maintained, data integrity will be compromised when a master server failure results in the need to switch to a replica server.
It can therefore be appreciated that a need exists for a method, system, and computer program product for providing data consistency among multiple stored instances of data maintained in the middleware layer of an n-tier data handling and storage architecture. The present invention addresses this and other needs unresolved by the prior art.